{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "56807b0c-fb04-4e48-82eb-6ab71f9202c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import tree\n",
    "from sklearn.datasets import load_wine #sklearn当中自带的数据库，包含非常经典的红酒数据集\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ee0161f1-964a-4a98-8795-759ea4e35fb5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': array([[1.423e+01, 1.710e+00, 2.430e+00, ..., 1.040e+00, 3.920e+00,\n",
       "         1.065e+03],\n",
       "        [1.320e+01, 1.780e+00, 2.140e+00, ..., 1.050e+00, 3.400e+00,\n",
       "         1.050e+03],\n",
       "        [1.316e+01, 2.360e+00, 2.670e+00, ..., 1.030e+00, 3.170e+00,\n",
       "         1.185e+03],\n",
       "        ...,\n",
       "        [1.327e+01, 4.280e+00, 2.260e+00, ..., 5.900e-01, 1.560e+00,\n",
       "         8.350e+02],\n",
       "        [1.317e+01, 2.590e+00, 2.370e+00, ..., 6.000e-01, 1.620e+00,\n",
       "         8.400e+02],\n",
       "        [1.413e+01, 4.100e+00, 2.740e+00, ..., 6.100e-01, 1.600e+00,\n",
       "         5.600e+02]]),\n",
       " 'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,\n",
       "        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,\n",
       "        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "        2, 2]),\n",
       " 'frame': None,\n",
       " 'target_names': array(['class_0', 'class_1', 'class_2'], dtype='<U7'),\n",
       " 'DESCR': '.. _wine_dataset:\\n\\nWine recognition dataset\\n------------------------\\n\\n**Data Set Characteristics:**\\n\\n:Number of Instances: 178\\n:Number of Attributes: 13 numeric, predictive attributes and the class\\n:Attribute Information:\\n    - Alcohol\\n    - Malic acid\\n    - Ash\\n    - Alcalinity of ash\\n    - Magnesium\\n    - Total phenols\\n    - Flavanoids\\n    - Nonflavanoid phenols\\n    - Proanthocyanins\\n    - Color intensity\\n    - Hue\\n    - OD280/OD315 of diluted wines\\n    - Proline\\n    - class:\\n        - class_0\\n        - class_1\\n        - class_2\\n\\n:Summary Statistics:\\n\\n============================= ==== ===== ======= =====\\n                                Min   Max   Mean     SD\\n============================= ==== ===== ======= =====\\nAlcohol:                      11.0  14.8    13.0   0.8\\nMalic Acid:                   0.74  5.80    2.34  1.12\\nAsh:                          1.36  3.23    2.36  0.27\\nAlcalinity of Ash:            10.6  30.0    19.5   3.3\\nMagnesium:                    70.0 162.0    99.7  14.3\\nTotal Phenols:                0.98  3.88    2.29  0.63\\nFlavanoids:                   0.34  5.08    2.03  1.00\\nNonflavanoid Phenols:         0.13  0.66    0.36  0.12\\nProanthocyanins:              0.41  3.58    1.59  0.57\\nColour Intensity:              1.3  13.0     5.1   2.3\\nHue:                          0.48  1.71    0.96  0.23\\nOD280/OD315 of diluted wines: 1.27  4.00    2.61  0.71\\nProline:                       278  1680     746   315\\n============================= ==== ===== ======= =====\\n\\n:Missing Attribute Values: None\\n:Class Distribution: class_0 (59), class_1 (71), class_2 (48)\\n:Creator: R.A. Fisher\\n:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\\n:Date: July, 1988\\n\\nThis is a copy of UCI ML Wine recognition datasets.\\nhttps://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data\\n\\nThe data is the results of a chemical analysis of wines grown in the same\\nregion in Italy by three different cultivators. There are thirteen different\\nmeasurements taken for different constituents found in the three types of\\nwine.\\n\\nOriginal Owners:\\n\\nForina, M. et al, PARVUS -\\nAn Extendible Package for Data Exploration, Classification and Correlation.\\nInstitute of Pharmaceutical and Food Analysis and Technologies,\\nVia Brigata Salerno, 16147 Genoa, Italy.\\n\\nCitation:\\n\\nLichman, M. (2013). UCI Machine Learning Repository\\n[https://archive.ics.uci.edu/ml]. Irvine, CA: University of California,\\nSchool of Information and Computer Science.\\n\\n.. dropdown:: References\\n\\n    (1) S. Aeberhard, D. Coomans and O. de Vel,\\n    Comparison of Classifiers in High Dimensional Settings,\\n    Tech. Rep. no. 92-02, (1992), Dept. of Computer Science and Dept. of\\n    Mathematics and Statistics, James Cook University of North Queensland.\\n    (Also submitted to Technometrics).\\n\\n    The data was used with many others for comparing various\\n    classifiers. The classes are separable, though only RDA\\n    has achieved 100% correct classification.\\n    (RDA : 100%, QDA 99.4%, LDA 98.9%, 1NN 96.1% (z-transformed data))\\n    (All results using the leave-one-out technique)\\n\\n    (2) S. Aeberhard, D. Coomans and O. de Vel,\\n    \"THE CLASSIFICATION PERFORMANCE OF RDA\"\\n    Tech. Rep. no. 92-01, (1992), Dept. of Computer Science and Dept. of\\n    Mathematics and Statistics, James Cook University of North Queensland.\\n    (Also submitted to Journal of Chemometrics).\\n',\n",
       " 'feature_names': ['alcohol',\n",
       "  'malic_acid',\n",
       "  'ash',\n",
       "  'alcalinity_of_ash',\n",
       "  'magnesium',\n",
       "  'total_phenols',\n",
       "  'flavanoids',\n",
       "  'nonflavanoid_phenols',\n",
       "  'proanthocyanins',\n",
       "  'color_intensity',\n",
       "  'hue',\n",
       "  'od280/od315_of_diluted_wines',\n",
       "  'proline']}"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine = load_wine() #导入红酒数据集\n",
    "wine "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c81cbe7b-0f74-45f9-aaf1-e19bc318a700",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(178, 13)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine.data.shape #查看数据的形状大小"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "74063f9f-2349-4e12-9b12-c36c0d9ec4ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine.target #查看数据的标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "014cafee-6f2f-45fe-9fc9-6f8bf669de8f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>14.23</td>\n",
       "      <td>1.71</td>\n",
       "      <td>2.43</td>\n",
       "      <td>15.6</td>\n",
       "      <td>127.0</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.06</td>\n",
       "      <td>0.28</td>\n",
       "      <td>2.29</td>\n",
       "      <td>5.64</td>\n",
       "      <td>1.04</td>\n",
       "      <td>3.92</td>\n",
       "      <td>1065.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>13.20</td>\n",
       "      <td>1.78</td>\n",
       "      <td>2.14</td>\n",
       "      <td>11.2</td>\n",
       "      <td>100.0</td>\n",
       "      <td>2.65</td>\n",
       "      <td>2.76</td>\n",
       "      <td>0.26</td>\n",
       "      <td>1.28</td>\n",
       "      <td>4.38</td>\n",
       "      <td>1.05</td>\n",
       "      <td>3.40</td>\n",
       "      <td>1050.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13.16</td>\n",
       "      <td>2.36</td>\n",
       "      <td>2.67</td>\n",
       "      <td>18.6</td>\n",
       "      <td>101.0</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.24</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2.81</td>\n",
       "      <td>5.68</td>\n",
       "      <td>1.03</td>\n",
       "      <td>3.17</td>\n",
       "      <td>1185.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>14.37</td>\n",
       "      <td>1.95</td>\n",
       "      <td>2.50</td>\n",
       "      <td>16.8</td>\n",
       "      <td>113.0</td>\n",
       "      <td>3.85</td>\n",
       "      <td>3.49</td>\n",
       "      <td>0.24</td>\n",
       "      <td>2.18</td>\n",
       "      <td>7.80</td>\n",
       "      <td>0.86</td>\n",
       "      <td>3.45</td>\n",
       "      <td>1480.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>13.24</td>\n",
       "      <td>2.59</td>\n",
       "      <td>2.87</td>\n",
       "      <td>21.0</td>\n",
       "      <td>118.0</td>\n",
       "      <td>2.80</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0.39</td>\n",
       "      <td>1.82</td>\n",
       "      <td>4.32</td>\n",
       "      <td>1.04</td>\n",
       "      <td>2.93</td>\n",
       "      <td>735.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>173</th>\n",
       "      <td>13.71</td>\n",
       "      <td>5.65</td>\n",
       "      <td>2.45</td>\n",
       "      <td>20.5</td>\n",
       "      <td>95.0</td>\n",
       "      <td>1.68</td>\n",
       "      <td>0.61</td>\n",
       "      <td>0.52</td>\n",
       "      <td>1.06</td>\n",
       "      <td>7.70</td>\n",
       "      <td>0.64</td>\n",
       "      <td>1.74</td>\n",
       "      <td>740.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>174</th>\n",
       "      <td>13.40</td>\n",
       "      <td>3.91</td>\n",
       "      <td>2.48</td>\n",
       "      <td>23.0</td>\n",
       "      <td>102.0</td>\n",
       "      <td>1.80</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.43</td>\n",
       "      <td>1.41</td>\n",
       "      <td>7.30</td>\n",
       "      <td>0.70</td>\n",
       "      <td>1.56</td>\n",
       "      <td>750.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>175</th>\n",
       "      <td>13.27</td>\n",
       "      <td>4.28</td>\n",
       "      <td>2.26</td>\n",
       "      <td>20.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>1.59</td>\n",
       "      <td>0.69</td>\n",
       "      <td>0.43</td>\n",
       "      <td>1.35</td>\n",
       "      <td>10.20</td>\n",
       "      <td>0.59</td>\n",
       "      <td>1.56</td>\n",
       "      <td>835.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>176</th>\n",
       "      <td>13.17</td>\n",
       "      <td>2.59</td>\n",
       "      <td>2.37</td>\n",
       "      <td>20.0</td>\n",
       "      <td>120.0</td>\n",
       "      <td>1.65</td>\n",
       "      <td>0.68</td>\n",
       "      <td>0.53</td>\n",
       "      <td>1.46</td>\n",
       "      <td>9.30</td>\n",
       "      <td>0.60</td>\n",
       "      <td>1.62</td>\n",
       "      <td>840.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>14.13</td>\n",
       "      <td>4.10</td>\n",
       "      <td>2.74</td>\n",
       "      <td>24.5</td>\n",
       "      <td>96.0</td>\n",
       "      <td>2.05</td>\n",
       "      <td>0.76</td>\n",
       "      <td>0.56</td>\n",
       "      <td>1.35</td>\n",
       "      <td>9.20</td>\n",
       "      <td>0.61</td>\n",
       "      <td>1.60</td>\n",
       "      <td>560.0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>178 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        0     1     2     3      4     5     6     7     8      9     10  \\\n",
       "0    14.23  1.71  2.43  15.6  127.0  2.80  3.06  0.28  2.29   5.64  1.04   \n",
       "1    13.20  1.78  2.14  11.2  100.0  2.65  2.76  0.26  1.28   4.38  1.05   \n",
       "2    13.16  2.36  2.67  18.6  101.0  2.80  3.24  0.30  2.81   5.68  1.03   \n",
       "3    14.37  1.95  2.50  16.8  113.0  3.85  3.49  0.24  2.18   7.80  0.86   \n",
       "4    13.24  2.59  2.87  21.0  118.0  2.80  2.69  0.39  1.82   4.32  1.04   \n",
       "..     ...   ...   ...   ...    ...   ...   ...   ...   ...    ...   ...   \n",
       "173  13.71  5.65  2.45  20.5   95.0  1.68  0.61  0.52  1.06   7.70  0.64   \n",
       "174  13.40  3.91  2.48  23.0  102.0  1.80  0.75  0.43  1.41   7.30  0.70   \n",
       "175  13.27  4.28  2.26  20.0  120.0  1.59  0.69  0.43  1.35  10.20  0.59   \n",
       "176  13.17  2.59  2.37  20.0  120.0  1.65  0.68  0.53  1.46   9.30  0.60   \n",
       "177  14.13  4.10  2.74  24.5   96.0  2.05  0.76  0.56  1.35   9.20  0.61   \n",
       "\n",
       "       11      12  0   \n",
       "0    3.92  1065.0   0  \n",
       "1    3.40  1050.0   0  \n",
       "2    3.17  1185.0   0  \n",
       "3    3.45  1480.0   0  \n",
       "4    2.93   735.0   0  \n",
       "..    ...     ...  ..  \n",
       "173  1.74   740.0   2  \n",
       "174  1.56   750.0   2  \n",
       "175  1.56   835.0   2  \n",
       "176  1.62   840.0   2  \n",
       "177  1.60   560.0   2  \n",
       "\n",
       "[178 rows x 14 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "pd.concat([pd.DataFrame(wine.data), pd.DataFrame(wine.target)],axis = 1) #将标签与原始数据进行拼接"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d62721d8-3e2d-4c09-9466-982af4327c16",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['alcohol',\n",
       " 'malic_acid',\n",
       " 'ash',\n",
       " 'alcalinity_of_ash',\n",
       " 'magnesium',\n",
       " 'total_phenols',\n",
       " 'flavanoids',\n",
       " 'nonflavanoid_phenols',\n",
       " 'proanthocyanins',\n",
       " 'color_intensity',\n",
       " 'hue',\n",
       " 'od280/od315_of_diluted_wines',\n",
       " 'proline']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine.feature_names #特征的名称"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1647b1b2-587e-428a-83e2-5c990ce863c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['class_0', 'class_1', 'class_2'], dtype='<U7')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wine.target_names #标签名称"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8ced7fd5-6a08-4446-acab-59b55f38aa4e",
   "metadata": {},
   "outputs": [],
   "source": [
    "Xtrain,Xtest,Ytrain,Ytest = train_test_split(wine.data, wine.target,test_size = 0.3) #37分测试集和训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b4e54800-7914-40df-a97f-e6e0cade2b7c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(124, 13)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Xtrain.shape "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "367e1864-b984-49f9-be1c-6211810a9b37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9629629629629629"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#导入分类树实例且训练和打分\n",
    "clf = tree.DecisionTreeClassifier(criterion = \"entropy\" #选择不纯度的计算方法\n",
    "                                  ,random_state=3 #控制随机性\n",
    "                                  ,splitter=\"random\" #特征选择方法\n",
    "                                 )  \n",
    "clf = clf.fit(Xtrain,Ytrain)\n",
    "score = clf.score(Xtest,Ytest)\n",
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "052fadc8-7eff-401b-9f1b-4b1a08b0cb28",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.50.0 (0)\n",
       " -->\n",
       "<!-- Title: Tree Pages: 1 -->\n",
       "<svg width=\"1214pt\" height=\"1028pt\"\n",
       " viewBox=\"0.00 0.00 1214.00 1028.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 1024)\">\n",
       "<title>Tree</title>\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-1024 1210,-1024 1210,4 -4,4\"/>\n",
       "<!-- 0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>0</title>\n",
       "<path fill=\"#fafefc\" stroke=\"black\" d=\"M335,-1020C335,-1020 227,-1020 227,-1020 221,-1020 215,-1014 215,-1008 215,-1008 215,-949 215,-949 215,-943 221,-937 227,-937 227,-937 335,-937 335,-937 341,-937 347,-943 347,-949 347,-949 347,-1008 347,-1008 347,-1014 341,-1020 335,-1020\"/>\n",
       "<text text-anchor=\"middle\" x=\"281\" y=\"-1004.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">类黄酮 &lt;= 0.781</text>\n",
       "<text text-anchor=\"middle\" x=\"281\" y=\"-989.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.582</text>\n",
       "<text text-anchor=\"middle\" x=\"281\" y=\"-974.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 124</text>\n",
       "<text text-anchor=\"middle\" x=\"281\" y=\"-959.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 44, 38]</text>\n",
       "<text text-anchor=\"middle\" x=\"281\" y=\"-944.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 1 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>1</title>\n",
       "<path fill=\"#8641e6\" stroke=\"black\" d=\"M243.5,-901C243.5,-901 130.5,-901 130.5,-901 124.5,-901 118.5,-895 118.5,-889 118.5,-889 118.5,-830 118.5,-830 118.5,-824 124.5,-818 130.5,-818 130.5,-818 243.5,-818 243.5,-818 249.5,-818 255.5,-824 255.5,-830 255.5,-830 255.5,-889 255.5,-889 255.5,-895 249.5,-901 243.5,-901\"/>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-885.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">颜色强度 &lt;= 2.125</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-870.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.235</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-855.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 26</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-840.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 25]</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-825.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;1 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>0&#45;&gt;1</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M248.39,-936.91C241.17,-927.92 233.45,-918.32 226.01,-909.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"228.55,-906.62 219.56,-901.02 223.09,-911.01 228.55,-906.62\"/>\n",
       "<text text-anchor=\"middle\" x=\"216.85\" y=\"-922.17\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>4</title>\n",
       "<path fill=\"#fbfffd\" stroke=\"black\" d=\"M432.5,-901C432.5,-901 319.5,-901 319.5,-901 313.5,-901 307.5,-895 307.5,-889 307.5,-889 307.5,-830 307.5,-830 307.5,-824 313.5,-818 319.5,-818 319.5,-818 432.5,-818 432.5,-818 438.5,-818 444.5,-824 444.5,-830 444.5,-830 444.5,-889 444.5,-889 444.5,-895 438.5,-901 432.5,-901\"/>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-885.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">脯氨酸 &lt;= 673.668</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-870.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.432</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-855.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 98</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-840.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 43, 13]</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-825.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;4 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>0&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M313.96,-936.91C321.25,-927.92 329.06,-918.32 336.58,-909.05\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"339.51,-910.99 343.1,-901.02 334.08,-906.58 339.51,-910.99\"/>\n",
       "<text text-anchor=\"middle\" x=\"345.68\" y=\"-922.19\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>2</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M98,-774.5C98,-774.5 12,-774.5 12,-774.5 6,-774.5 0,-768.5 0,-762.5 0,-762.5 0,-718.5 0,-718.5 0,-712.5 6,-706.5 12,-706.5 12,-706.5 98,-706.5 98,-706.5 104,-706.5 110,-712.5 110,-718.5 110,-718.5 110,-762.5 110,-762.5 110,-768.5 104,-774.5 98,-774.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-759.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-744.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-729.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"55\" y=\"-714.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M141.2,-817.91C127.88,-806.1 113.35,-793.22 100.07,-781.45\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"102.22,-778.68 92.42,-774.67 97.58,-783.92 102.22,-778.68\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>3</title>\n",
       "<path fill=\"#8139e5\" stroke=\"black\" d=\"M233.5,-774.5C233.5,-774.5 140.5,-774.5 140.5,-774.5 134.5,-774.5 128.5,-768.5 128.5,-762.5 128.5,-762.5 128.5,-718.5 128.5,-718.5 128.5,-712.5 134.5,-706.5 140.5,-706.5 140.5,-706.5 233.5,-706.5 233.5,-706.5 239.5,-706.5 245.5,-712.5 245.5,-718.5 245.5,-718.5 245.5,-762.5 245.5,-762.5 245.5,-768.5 239.5,-774.5 233.5,-774.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-759.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-744.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 25</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-729.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 25]</text>\n",
       "<text text-anchor=\"middle\" x=\"187\" y=\"-714.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;3 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>1&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M187,-817.91C187,-807.2 187,-795.62 187,-784.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"190.5,-784.67 187,-774.67 183.5,-784.67 190.5,-784.67\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>5</title>\n",
       "<path fill=\"#73eda6\" stroke=\"black\" d=\"M476,-782C476,-782 276,-782 276,-782 270,-782 264,-776 264,-770 264,-770 264,-711 264,-711 264,-705 270,-699 276,-699 276,-699 476,-699 476,-699 482,-699 488,-705 488,-711 488,-711 488,-770 488,-770 488,-776 482,-782 476,-782\"/>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-766.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">od280/od315稀释葡萄酒 &lt;= 1.39</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-751.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.773</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-736.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 44</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-721.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 34, 10]</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-706.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M376,-817.91C376,-809.65 376,-800.86 376,-792.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"379.5,-792.02 376,-782.02 372.5,-792.02 379.5,-792.02\"/>\n",
       "</g>\n",
       "<!-- 14 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>14</title>\n",
       "<path fill=\"#eca36e\" stroke=\"black\" d=\"M617.5,-782C617.5,-782 524.5,-782 524.5,-782 518.5,-782 512.5,-776 512.5,-770 512.5,-770 512.5,-711 512.5,-711 512.5,-705 518.5,-699 524.5,-699 524.5,-699 617.5,-699 617.5,-699 623.5,-699 629.5,-705 629.5,-711 629.5,-711 629.5,-770 629.5,-770 629.5,-776 623.5,-782 617.5,-782\"/>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-766.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">酒精 &lt;= 12.517</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-751.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.944</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-736.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 54</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-721.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 9, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-706.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;14 -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>4&#45;&gt;14</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M443.65,-817.91C463.02,-806.29 484.12,-793.63 503.48,-782.01\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"505.46,-784.9 512.24,-776.76 501.86,-778.9 505.46,-784.9\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>6</title>\n",
       "<path fill=\"#8139e5\" stroke=\"black\" d=\"M285,-655.5C285,-655.5 199,-655.5 199,-655.5 193,-655.5 187,-649.5 187,-643.5 187,-643.5 187,-599.5 187,-599.5 187,-593.5 193,-587.5 199,-587.5 199,-587.5 285,-587.5 285,-587.5 291,-587.5 297,-593.5 297,-599.5 297,-599.5 297,-643.5 297,-643.5 297,-649.5 291,-655.5 285,-655.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"242\" y=\"-640.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"242\" y=\"-625.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\n",
       "<text text-anchor=\"middle\" x=\"242\" y=\"-610.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 4]</text>\n",
       "<text text-anchor=\"middle\" x=\"242\" y=\"-595.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M329.51,-698.91C315.99,-687.1 301.23,-674.22 287.75,-662.45\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"289.82,-659.61 279.99,-655.67 285.22,-664.88 289.82,-659.61\"/>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>7</title>\n",
       "<path fill=\"#5cea97\" stroke=\"black\" d=\"M425,-663C425,-663 327,-663 327,-663 321,-663 315,-657 315,-651 315,-651 315,-592 315,-592 315,-586 321,-580 327,-580 327,-580 425,-580 425,-580 431,-580 437,-586 437,-592 437,-592 437,-651 437,-651 437,-657 431,-663 425,-663\"/>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-647.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">类黄酮 &lt;= 1.087</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-632.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.61</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-617.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 40</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-602.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 34, 6]</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-587.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;7 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>5&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M376,-698.91C376,-690.65 376,-681.86 376,-673.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"379.5,-673.02 376,-663.02 372.5,-673.02 379.5,-673.02\"/>\n",
       "</g>\n",
       "<!-- 8 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>8</title>\n",
       "<path fill=\"#ab7bee\" stroke=\"black\" d=\"M271,-544C271,-544 185,-544 185,-544 179,-544 173,-538 173,-532 173,-532 173,-473 173,-473 173,-467 179,-461 185,-461 185,-461 271,-461 271,-461 277,-461 283,-467 283,-473 283,-473 283,-532 283,-532 283,-538 277,-544 271,-544\"/>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">总酚 &lt;= 1.916</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.811</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 7&#45;&gt;8 -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>7&#45;&gt;8</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M324.65,-579.91C312.6,-570.38 299.66,-560.15 287.29,-550.37\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"289.27,-547.48 279.26,-544.02 284.93,-552.97 289.27,-547.48\"/>\n",
       "</g>\n",
       "<!-- 11 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>11</title>\n",
       "<path fill=\"#4be78c\" stroke=\"black\" d=\"M432.5,-544C432.5,-544 319.5,-544 319.5,-544 313.5,-544 307.5,-538 307.5,-532 307.5,-532 307.5,-473 307.5,-473 307.5,-467 313.5,-461 319.5,-461 319.5,-461 432.5,-461 432.5,-461 438.5,-461 444.5,-467 444.5,-473 444.5,-473 444.5,-532 444.5,-532 444.5,-538 438.5,-544 432.5,-544\"/>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">颜色强度 &lt;= 7.166</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.414</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 36</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 33, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"376\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 7&#45;&gt;11 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>7&#45;&gt;11</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M376,-579.91C376,-571.65 376,-562.86 376,-554.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"379.5,-554.02 376,-544.02 372.5,-554.02 379.5,-554.02\"/>\n",
       "</g>\n",
       "<!-- 9 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>9</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M143,-417.5C143,-417.5 57,-417.5 57,-417.5 51,-417.5 45,-411.5 45,-405.5 45,-405.5 45,-361.5 45,-361.5 45,-355.5 51,-349.5 57,-349.5 57,-349.5 143,-349.5 143,-349.5 149,-349.5 155,-355.5 155,-361.5 155,-361.5 155,-405.5 155,-405.5 155,-411.5 149,-417.5 143,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"100\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"100\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\n",
       "<text text-anchor=\"middle\" x=\"100\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"100\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 8&#45;&gt;9 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>8&#45;&gt;9</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M183.59,-460.91C170.67,-449.1 156.58,-436.22 143.71,-424.45\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"146.03,-421.83 136.29,-417.67 141.3,-427 146.03,-421.83\"/>\n",
       "</g>\n",
       "<!-- 10 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>10</title>\n",
       "<path fill=\"#8139e5\" stroke=\"black\" d=\"M271,-417.5C271,-417.5 185,-417.5 185,-417.5 179,-417.5 173,-411.5 173,-405.5 173,-405.5 173,-361.5 173,-361.5 173,-355.5 179,-349.5 185,-349.5 185,-349.5 271,-349.5 271,-349.5 277,-349.5 283,-355.5 283,-361.5 283,-361.5 283,-405.5 283,-405.5 283,-411.5 277,-417.5 271,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"228\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 8&#45;&gt;10 -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>8&#45;&gt;10</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M228,-460.91C228,-450.2 228,-438.62 228,-427.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"231.5,-427.67 228,-417.67 224.5,-427.67 231.5,-427.67\"/>\n",
       "</g>\n",
       "<!-- 12 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>12</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M406.5,-417.5C406.5,-417.5 313.5,-417.5 313.5,-417.5 307.5,-417.5 301.5,-411.5 301.5,-405.5 301.5,-405.5 301.5,-361.5 301.5,-361.5 301.5,-355.5 307.5,-349.5 313.5,-349.5 313.5,-349.5 406.5,-349.5 406.5,-349.5 412.5,-349.5 418.5,-355.5 418.5,-361.5 418.5,-361.5 418.5,-405.5 418.5,-405.5 418.5,-411.5 412.5,-417.5 406.5,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"360\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"360\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 33</text>\n",
       "<text text-anchor=\"middle\" x=\"360\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 33, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"360\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 11&#45;&gt;12 -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>11&#45;&gt;12</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M370.45,-460.91C368.99,-450.2 367.4,-438.62 365.92,-427.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"369.36,-427.1 364.54,-417.67 362.42,-428.05 369.36,-427.1\"/>\n",
       "</g>\n",
       "<!-- 13 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>13</title>\n",
       "<path fill=\"#8139e5\" stroke=\"black\" d=\"M535,-417.5C535,-417.5 449,-417.5 449,-417.5 443,-417.5 437,-411.5 437,-405.5 437,-405.5 437,-361.5 437,-361.5 437,-355.5 443,-349.5 449,-349.5 449,-349.5 535,-349.5 535,-349.5 541,-349.5 547,-355.5 547,-361.5 547,-361.5 547,-405.5 547,-405.5 547,-411.5 541,-417.5 535,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"492\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"492\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\n",
       "<text text-anchor=\"middle\" x=\"492\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"492\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 11&#45;&gt;13 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>11&#45;&gt;13</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M416.25,-460.91C427.84,-449.21 440.49,-436.46 452.06,-424.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"454.56,-427.23 459.12,-417.67 449.59,-422.3 454.56,-427.23\"/>\n",
       "</g>\n",
       "<!-- 15 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>15</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M614,-655.5C614,-655.5 528,-655.5 528,-655.5 522,-655.5 516,-649.5 516,-643.5 516,-643.5 516,-599.5 516,-599.5 516,-593.5 522,-587.5 528,-587.5 528,-587.5 614,-587.5 614,-587.5 620,-587.5 626,-593.5 626,-599.5 626,-599.5 626,-643.5 626,-643.5 626,-649.5 620,-655.5 614,-655.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-640.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-625.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 6</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-610.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 6, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"571\" y=\"-595.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 14&#45;&gt;15 -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>14&#45;&gt;15</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M571,-698.91C571,-688.2 571,-676.62 571,-665.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"574.5,-665.67 571,-655.67 567.5,-665.67 574.5,-665.67\"/>\n",
       "</g>\n",
       "<!-- 16 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>16</title>\n",
       "<path fill=\"#e89253\" stroke=\"black\" d=\"M766,-663C766,-663 668,-663 668,-663 662,-663 656,-657 656,-651 656,-651 656,-592 656,-592 656,-586 662,-580 668,-580 668,-580 766,-580 766,-580 772,-580 778,-586 778,-592 778,-592 778,-651 778,-651 778,-657 772,-663 766,-663\"/>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-647.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">类黄酮 &lt;= 1.371</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-632.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.669</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-617.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 48</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-602.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 3, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-587.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 14&#45;&gt;16 -->\n",
       "<g id=\"edge16\" class=\"edge\">\n",
       "<title>14&#45;&gt;16</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M621.65,-698.91C633.54,-689.38 646.31,-679.15 658.51,-669.37\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"660.82,-672.01 666.44,-663.02 656.44,-666.54 660.82,-672.01\"/>\n",
       "</g>\n",
       "<!-- 17 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>17</title>\n",
       "<path fill=\"#ab7bee\" stroke=\"black\" d=\"M773.5,-544C773.5,-544 660.5,-544 660.5,-544 654.5,-544 648.5,-538 648.5,-532 648.5,-532 648.5,-473 648.5,-473 648.5,-467 654.5,-461 660.5,-461 660.5,-461 773.5,-461 773.5,-461 779.5,-461 785.5,-467 785.5,-473 785.5,-473 785.5,-532 785.5,-532 785.5,-538 779.5,-544 773.5,-544\"/>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">颜色强度 &lt;= 5.608</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.811</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"717\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 16&#45;&gt;17 -->\n",
       "<g id=\"edge17\" class=\"edge\">\n",
       "<title>16&#45;&gt;17</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M717,-579.91C717,-571.65 717,-562.86 717,-554.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"720.5,-554.02 717,-544.02 713.5,-554.02 720.5,-554.02\"/>\n",
       "</g>\n",
       "<!-- 20 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>20</title>\n",
       "<path fill=\"#e68742\" stroke=\"black\" d=\"M932.5,-544C932.5,-544 839.5,-544 839.5,-544 833.5,-544 827.5,-538 827.5,-532 827.5,-532 827.5,-473 827.5,-473 827.5,-467 833.5,-461 839.5,-461 839.5,-461 932.5,-461 932.5,-461 938.5,-461 944.5,-467 944.5,-473 944.5,-473 944.5,-532 944.5,-532 944.5,-538 938.5,-544 932.5,-544\"/>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-528.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">镁 &lt;= 122.003</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-513.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.267</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-498.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 44</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-483.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 2, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-468.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 16&#45;&gt;20 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>16&#45;&gt;20</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M775.63,-579.91C789.66,-570.2 804.74,-559.76 819.11,-549.81\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"821.24,-552.59 827.47,-544.02 817.26,-546.84 821.24,-552.59\"/>\n",
       "</g>\n",
       "<!-- 18 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>18</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M663,-417.5C663,-417.5 577,-417.5 577,-417.5 571,-417.5 565,-411.5 565,-405.5 565,-405.5 565,-361.5 565,-361.5 565,-355.5 571,-349.5 577,-349.5 577,-349.5 663,-349.5 663,-349.5 669,-349.5 675,-355.5 675,-361.5 675,-361.5 675,-405.5 675,-405.5 675,-411.5 669,-417.5 663,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"620\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"620\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\n",
       "<text text-anchor=\"middle\" x=\"620\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"620\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 17&#45;&gt;18 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>17&#45;&gt;18</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M683.35,-460.91C673.83,-449.43 663.47,-436.94 653.94,-425.44\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"656.57,-423.13 647.5,-417.67 651.19,-427.6 656.57,-423.13\"/>\n",
       "</g>\n",
       "<!-- 19 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>19</title>\n",
       "<path fill=\"#8139e5\" stroke=\"black\" d=\"M791,-417.5C791,-417.5 705,-417.5 705,-417.5 699,-417.5 693,-411.5 693,-405.5 693,-405.5 693,-361.5 693,-361.5 693,-355.5 699,-349.5 705,-349.5 705,-349.5 791,-349.5 791,-349.5 797,-349.5 803,-355.5 803,-361.5 803,-361.5 803,-405.5 803,-405.5 803,-411.5 797,-417.5 791,-417.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"748\" y=\"-402.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"748\" y=\"-387.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\n",
       "<text text-anchor=\"middle\" x=\"748\" y=\"-372.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 3]</text>\n",
       "<text text-anchor=\"middle\" x=\"748\" y=\"-357.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 白兰地</text>\n",
       "</g>\n",
       "<!-- 17&#45;&gt;19 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>17&#45;&gt;19</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M727.76,-460.91C730.62,-450.09 733.73,-438.38 736.62,-427.44\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"740.03,-428.23 739.21,-417.67 733.27,-426.44 740.03,-428.23\"/>\n",
       "</g>\n",
       "<!-- 21 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>21</title>\n",
       "<path fill=\"#e6843e\" stroke=\"black\" d=\"M939,-425C939,-425 833,-425 833,-425 827,-425 821,-419 821,-413 821,-413 821,-354 821,-354 821,-348 827,-342 833,-342 833,-342 939,-342 939,-342 945,-342 951,-348 951,-354 951,-354 951,-413 951,-413 951,-419 945,-425 939,-425\"/>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">颜色强度 &lt;= 4.38</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.172</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 39</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [38, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"886\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 20&#45;&gt;21 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>20&#45;&gt;21</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M886,-460.91C886,-452.65 886,-443.86 886,-435.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"889.5,-435.02 886,-425.02 882.5,-435.02 889.5,-435.02\"/>\n",
       "</g>\n",
       "<!-- 28 -->\n",
       "<g id=\"node29\" class=\"node\">\n",
       "<title>28</title>\n",
       "<path fill=\"#eca06a\" stroke=\"black\" d=\"M1068.5,-425C1068.5,-425 981.5,-425 981.5,-425 975.5,-425 969.5,-419 969.5,-413 969.5,-413 969.5,-354 969.5,-354 969.5,-348 975.5,-342 981.5,-342 981.5,-342 1068.5,-342 1068.5,-342 1074.5,-342 1080.5,-348 1080.5,-354 1080.5,-354 1080.5,-413 1080.5,-413 1080.5,-419 1074.5,-425 1068.5,-425\"/>\n",
       "<text text-anchor=\"middle\" x=\"1025\" y=\"-409.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">镁 &lt;= 132.386</text>\n",
       "<text text-anchor=\"middle\" x=\"1025\" y=\"-394.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.722</text>\n",
       "<text text-anchor=\"middle\" x=\"1025\" y=\"-379.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 5</text>\n",
       "<text text-anchor=\"middle\" x=\"1025\" y=\"-364.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"1025\" y=\"-349.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 20&#45;&gt;28 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>20&#45;&gt;28</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M934.23,-460.91C945.44,-451.47 957.47,-441.34 968.99,-431.65\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"971.46,-434.14 976.86,-425.02 966.96,-428.78 971.46,-434.14\"/>\n",
       "</g>\n",
       "<!-- 22 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>22</title>\n",
       "<path fill=\"#e89152\" stroke=\"black\" d=\"M799.5,-306C799.5,-306 710.5,-306 710.5,-306 704.5,-306 698.5,-300 698.5,-294 698.5,-294 698.5,-235 698.5,-235 698.5,-229 704.5,-223 710.5,-223 710.5,-223 799.5,-223 799.5,-223 805.5,-223 811.5,-229 811.5,-235 811.5,-235 811.5,-294 811.5,-294 811.5,-300 805.5,-306 799.5,-306\"/>\n",
       "<text text-anchor=\"middle\" x=\"755\" y=\"-290.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">酒精 &lt;= 13.223</text>\n",
       "<text text-anchor=\"middle\" x=\"755\" y=\"-275.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.503</text>\n",
       "<text text-anchor=\"middle\" x=\"755\" y=\"-260.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 9</text>\n",
       "<text text-anchor=\"middle\" x=\"755\" y=\"-245.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [8, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"755\" y=\"-230.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 21&#45;&gt;22 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>21&#45;&gt;22</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M840.55,-341.91C830.08,-332.56 818.86,-322.54 808.1,-312.93\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"810.16,-310.07 800.37,-306.02 805.5,-315.29 810.16,-310.07\"/>\n",
       "</g>\n",
       "<!-- 27 -->\n",
       "<g id=\"node28\" class=\"node\">\n",
       "<title>27</title>\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M934.5,-298.5C934.5,-298.5 841.5,-298.5 841.5,-298.5 835.5,-298.5 829.5,-292.5 829.5,-286.5 829.5,-286.5 829.5,-242.5 829.5,-242.5 829.5,-236.5 835.5,-230.5 841.5,-230.5 841.5,-230.5 934.5,-230.5 934.5,-230.5 940.5,-230.5 946.5,-236.5 946.5,-242.5 946.5,-242.5 946.5,-286.5 946.5,-286.5 946.5,-292.5 940.5,-298.5 934.5,-298.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"888\" y=\"-283.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"888\" y=\"-268.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 30</text>\n",
       "<text text-anchor=\"middle\" x=\"888\" y=\"-253.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [30, 0, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"888\" y=\"-238.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 21&#45;&gt;27 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>21&#45;&gt;27</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M886.69,-341.91C886.88,-331.2 887.07,-319.62 887.26,-308.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"890.76,-308.73 887.43,-298.67 883.76,-308.61 890.76,-308.73\"/>\n",
       "</g>\n",
       "<!-- 23 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>23</title>\n",
       "<path fill=\"#f2c09c\" stroke=\"black\" d=\"M737,-187C737,-187 639,-187 639,-187 633,-187 627,-181 627,-175 627,-175 627,-116 627,-116 627,-110 633,-104 639,-104 639,-104 737,-104 737,-104 743,-104 749,-110 749,-116 749,-116 749,-175 749,-175 749,-181 743,-187 737,-187\"/>\n",
       "<text text-anchor=\"middle\" x=\"688\" y=\"-171.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">花青素 &lt;= 1.542</text>\n",
       "<text text-anchor=\"middle\" x=\"688\" y=\"-156.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.918</text>\n",
       "<text text-anchor=\"middle\" x=\"688\" y=\"-141.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 3</text>\n",
       "<text text-anchor=\"middle\" x=\"688\" y=\"-126.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"688\" y=\"-111.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 22&#45;&gt;23 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>22&#45;&gt;23</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M731.75,-222.91C726.77,-214.2 721.44,-204.9 716.29,-195.89\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"719.21,-193.96 711.2,-187.02 713.14,-197.44 719.21,-193.96\"/>\n",
       "</g>\n",
       "<!-- 26 -->\n",
       "<g id=\"node27\" class=\"node\">\n",
       "<title>26</title>\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M865,-179.5C865,-179.5 779,-179.5 779,-179.5 773,-179.5 767,-173.5 767,-167.5 767,-167.5 767,-123.5 767,-123.5 767,-117.5 773,-111.5 779,-111.5 779,-111.5 865,-111.5 865,-111.5 871,-111.5 877,-117.5 877,-123.5 877,-123.5 877,-167.5 877,-167.5 877,-173.5 871,-179.5 865,-179.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"822\" y=\"-164.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"822\" y=\"-149.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 6</text>\n",
       "<text text-anchor=\"middle\" x=\"822\" y=\"-134.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [6, 0, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"822\" y=\"-119.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 22&#45;&gt;26 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>22&#45;&gt;26</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M778.25,-222.91C784.63,-211.76 791.56,-199.66 797.98,-188.44\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"801.07,-190.08 803.01,-179.67 795,-186.61 801.07,-190.08\"/>\n",
       "</g>\n",
       "<!-- 24 -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>24</title>\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M667,-68C667,-68 581,-68 581,-68 575,-68 569,-62 569,-56 569,-56 569,-12 569,-12 569,-6 575,0 581,0 581,0 667,0 667,0 673,0 679,-6 679,-12 679,-12 679,-56 679,-56 679,-62 673,-68 667,-68\"/>\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 2</text>\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [2, 0, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"624\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 23&#45;&gt;24 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>23&#45;&gt;24</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M664.17,-103.73C659.1,-95.06 653.75,-85.9 648.65,-77.18\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"651.53,-75.17 643.46,-68.3 645.49,-78.7 651.53,-75.17\"/>\n",
       "</g>\n",
       "<!-- 25 -->\n",
       "<g id=\"node26\" class=\"node\">\n",
       "<title>25</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M795,-68C795,-68 709,-68 709,-68 703,-68 697,-62 697,-56 697,-56 697,-12 697,-12 697,-6 703,0 709,0 709,0 795,0 795,0 801,0 807,-6 807,-12 807,-12 807,-56 807,-56 807,-62 801,-68 795,-68\"/>\n",
       "<text text-anchor=\"middle\" x=\"752\" y=\"-52.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"752\" y=\"-37.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\n",
       "<text text-anchor=\"middle\" x=\"752\" y=\"-22.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"752\" y=\"-7.8\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 23&#45;&gt;25 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>23&#45;&gt;25</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M711.83,-103.73C716.9,-95.06 722.25,-85.9 727.35,-77.18\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"730.51,-78.7 732.54,-68.3 724.47,-75.17 730.51,-78.7\"/>\n",
       "</g>\n",
       "<!-- 29 -->\n",
       "<g id=\"node30\" class=\"node\">\n",
       "<title>29</title>\n",
       "<path fill=\"#e58139\" stroke=\"black\" d=\"M1066,-298.5C1066,-298.5 980,-298.5 980,-298.5 974,-298.5 968,-292.5 968,-286.5 968,-286.5 968,-242.5 968,-242.5 968,-236.5 974,-230.5 980,-230.5 980,-230.5 1066,-230.5 1066,-230.5 1072,-230.5 1078,-236.5 1078,-242.5 1078,-242.5 1078,-286.5 1078,-286.5 1078,-292.5 1072,-298.5 1066,-298.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"1023\" y=\"-283.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"1023\" y=\"-268.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 4</text>\n",
       "<text text-anchor=\"middle\" x=\"1023\" y=\"-253.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 0, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"1023\" y=\"-238.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 伏特加</text>\n",
       "</g>\n",
       "<!-- 28&#45;&gt;29 -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>28&#45;&gt;29</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1024.31,-341.91C1024.12,-331.2 1023.93,-319.62 1023.74,-308.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1027.24,-308.61 1023.57,-298.67 1020.24,-308.73 1027.24,-308.61\"/>\n",
       "</g>\n",
       "<!-- 30 -->\n",
       "<g id=\"node31\" class=\"node\">\n",
       "<title>30</title>\n",
       "<path fill=\"#39e581\" stroke=\"black\" d=\"M1194,-298.5C1194,-298.5 1108,-298.5 1108,-298.5 1102,-298.5 1096,-292.5 1096,-286.5 1096,-286.5 1096,-242.5 1096,-242.5 1096,-236.5 1102,-230.5 1108,-230.5 1108,-230.5 1194,-230.5 1194,-230.5 1200,-230.5 1206,-236.5 1206,-242.5 1206,-242.5 1206,-286.5 1206,-286.5 1206,-292.5 1200,-298.5 1194,-298.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"1151\" y=\"-283.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n",
       "<text text-anchor=\"middle\" x=\"1151\" y=\"-268.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1</text>\n",
       "<text text-anchor=\"middle\" x=\"1151\" y=\"-253.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 1, 0]</text>\n",
       "<text text-anchor=\"middle\" x=\"1151\" y=\"-238.3\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = 威士忌</text>\n",
       "</g>\n",
       "<!-- 28&#45;&gt;30 -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>28&#45;&gt;30</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M1068.72,-341.91C1081.31,-330.21 1095.05,-317.46 1107.62,-305.78\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"1110.34,-308.04 1115.28,-298.67 1105.57,-302.91 1110.34,-308.04\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.sources.Source at 0x22b50b39bb0>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz #绘树状图库\n",
    "features = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']\n",
    "dot_data = tree.export_graphviz(clf\n",
    "        ,feature_names = features\n",
    "        ,class_names = [\"伏特加\", \"威士忌\", \"白兰地\"]\n",
    "        ,filled = True\n",
    "        ,rounded = True\n",
    "        )\n",
    "graph = graphviz.Source(dot_data) #各项分数计算\n",
    "graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "955d20f1-3f30-4d7d-bf2a-0018d15a60ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.10542819, 0.        , 0.        , 0.        , 0.02562714,\n",
       "       0.01653925, 0.37267841, 0.        , 0.01404074, 0.13474389,\n",
       "       0.        , 0.04907252, 0.28186987])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.feature_importances_ #特征重要性属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "5ec43957-b04f-4314-b8e5-ea7e0dbe9079",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('酒精', 0.10542819017131941),\n",
       " ('苹果酸', 0.0),\n",
       " ('灰', 0.0),\n",
       " ('灰的碱性', 0.0),\n",
       " ('镁', 0.025627139858852666),\n",
       " ('总酚', 0.01653924801714775),\n",
       " ('类黄酮', 0.37267840857865425),\n",
       " ('非黄烷类酚类', 0.0),\n",
       " ('花青素', 0.014040735933807832),\n",
       " ('颜色强度', 0.13474388528404616),\n",
       " ('色调', 0.0),\n",
       " ('od280/od315稀释葡萄酒', 0.04907252325539937),\n",
       " ('脯氨酸', 0.2818698689007727)]"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[*zip(features,clf.feature_importances_)] #详细的展示特征重要性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "cd4904e0-fd9a-4106-94a6-46bda0109124",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9814814814814815"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf = tree.DecisionTreeClassifier(\n",
    "            criterion=\"entropy\"\n",
    "            ,random_state=3\n",
    "            ,splitter=\"random\"\n",
    "             ,max_depth=5\n",
    "             ,min_samples_leaf=2\n",
    "             # ,min_samples_split=9 #探究分支策略对分数的影响\n",
    "            )\n",
    "clf = clf.fit(Xtrain,Ytrain)\n",
    "score = clf.score(Xtest,Ytest)\n",
    "score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "dfb1d863-0303-41c4-a621-b6d3b3aa9d9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([27, 27, 12, 12,  3, 27, 12, 12,  3, 12, 27,  6, 12, 29, 12, 27, 27,\n",
       "       27,  3,  9,  6, 26, 27, 12,  3, 15, 12, 12, 12, 26, 27, 15, 12, 15,\n",
       "       27, 12,  3, 12, 27, 12, 15, 24, 27, 12, 12,  3, 12, 12, 27, 12, 12,\n",
       "       12, 12, 12], dtype=int64)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.apply(Xtest) #测试样本点的叶子的索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "5234de93-ebcc-40ea-9bab-aa32a19e119e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 1, 1, 2, 0, 1, 1, 2, 1, 0, 2, 1, 0, 1, 0, 0, 0, 2, 1, 2, 0,\n",
       "       0, 1, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 2, 1, 0, 1, 1, 0, 0, 1,\n",
       "       1, 2, 1, 1, 0, 1, 1, 1, 1, 1])"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.predict(Xtest) #测试样本点的标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "6d3b6cef-5626-4d1d-ba31-9953af6314b8",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\作者\\AppData\\Roaming\\Python\\Python312\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21442 (\\N{CJK UNIFIED IDEOGRAPH-53C2}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\作者\\AppData\\Roaming\\Python\\Python312\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#超参数学习曲线（可更换不同的参数探究）\n",
    "import matplotlib.pyplot as plt\n",
    "empty=[]\n",
    "for i in range(10):\n",
    "    clf = tree.DecisionTreeClassifier(max_depth=i+1\n",
    "            ,criterion=\"entropy\"\n",
    "            ,splitter=\"random\"\n",
    "            ,random_state=3\n",
    "            )\n",
    "    clf = clf.fit(Xtrain,Ytrain)\n",
    "    score = clf.score(Xtest,Ytest)\n",
    "    empty.append(score)\n",
    "plt.plot(range(1,11), empty, color=\"red\", label=\"max_depth参数\")\n",
    "plt.legend()\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "144e996b-b2d3-4607-9195-ef77685628da",
   "metadata": {},
   "source": [
    "**觉得很抽象，先别急，这只是分类树实例的训练，接下来还有回归数实例以及完整的kaggle预测泰坦尼克号幸存人员。相信您完整看完之后会有一定的收获哈，最后祝您我变得更强!**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2e6b68f7-a977-4612-bd20-1c9d6f9b6f49",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
